package com.qianli.cashmama.trade.client.trade.response;

import com.qianli.cashmama.trade.common.enums.*;

import java.io.Serializable;
import java.util.Date;

/**
 * @program: cashmama-trade-center
 * @description 订单信息
 * @author: frank
 * @create: 2020-05-29 14:45
 **/
public class TradeInfoRO implements Serializable {
    private static final long serialVersionUID = -577949192547939957L;

    /**
     * 交易编码
     */
    private String tradeNo;
    /**
     * 客户code
     */
    private String customerCode;
    /**
     * 用户code
     */
    private String userCode;
    /**
     * 渠道code
     */
    private String channelCode;
    /**
     * 产品code
     */
    private String productCode;
    /**
     * 产品类目
     */
    private String productCategory;
    /**
     * 客户端类型
     */
    private TradeClientTypeEnum clientType;
    /**
     * 订单状态 0初始化 1创建成功 2等待信审回执 3等待放款回执 4待重绑卡 5 待还款 6逾期中 7 交易关闭 8等待息费成功支付回执,9待签约
     */
    private TradeStatusEnum orderStatus;
    /**
     * 签名状态 1成功 2失败
     */
    private TradeSignStatusEnum signStatus;
    /**
     * 信审状态 1成功 2失败
     */
    private TradeAuditStatusEnum auditStatus;
    /**
     * 信审子状态 0-审核中 1-通过 2-拒绝 3-等待highmark
     */
    private TradeAuditSubStatusEnum auditSubStatus;
    /**
     * 关闭类型
     */
    private TradeCloseTypeEnum tradeCloseTypeEnum;
    /**
     * 0:内部订单(默认) 1:降额产品 2:导流复制的产品
     */
    private TradeTypeEnum orderType;
    /**
     * 支付状态 1成功 2 失败
     */
    private TradePayStatusEnum payStatus;
    /**
     * 借款总金额
     */
    private String borrowTotalCapital;
    /**
     * 到账总金额
     */
    private String receivedTotalCapital;
    /**
     * 应还总金额
     */
    private String repaymentTotalCapital;
    /**
     * 已还总金额
     */
    private String paidTotalCapital;
    /**
     * 优惠总金额
     */
    private String discountTotalCapital;
    /**
     * 总服务费
     */
    private String totalServiceFee;
    /**
     * 借款利率
     */
    private String borrowRatio;
    /**
     * 总期数
     */
    private Integer totalPeriod;
    /**
     * 已还期数
     */
    private Integer paidPeriod;
    /**
     * 间隔单位 1 日 2：周 3 月 4：年
     */
    private Integer borrowDuration;
    /**
     * 每一期的长度
     */
    private Integer periodLength;
    /**
     * 总逾期服务费
     */
    private String totalOverdueServiceFee;
    /**
     * 总逾期费
     */
    private String totalOverdueFee;
    /**
     * 单次逾期费
     */
    private String overdueServiceFee;
    /**
     * 逾期利率
     */
    private String overdueRatio;
    /**
     * 信审反馈时间
     */
    private Date auditDate;
    /**
     * 到账时间
     */
    private Date receivedDate;
    /**
     * 还清时间
     */
    private Date payOffDate;
    /**
     * 交易编码
     */
    private String payNo;
    /**
     * 资金方
     */
    private String capitalCode;
    /**
     * 是否是新客 1：新客  0 老客
     */
    private boolean isNewUser;
    /**
     * 借款用途 0:无(默认)
     */
    private UsageOfLoanEnum usageOfLoan;
    /**
     * 额外信息
     */
    private String extraData;
    /**
     *
     */
    private Date createDt;
    /**
     * 银行卡号
     */
    private String cardNo;

    public String getTradeNo() {
        return tradeNo;
    }

    public TradeInfoRO setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
        return this;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public TradeInfoRO setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
        return this;
    }

    public String getUserCode() {
        return userCode;
    }

    public TradeInfoRO setUserCode(String userCode) {
        this.userCode = userCode;
        return this;
    }

    public String getChannelCode() {
        return channelCode;
    }

    public TradeInfoRO setChannelCode(String channelCode) {
        this.channelCode = channelCode;
        return this;
    }

    public String getProductCode() {
        return productCode;
    }

    public TradeInfoRO setProductCode(String productCode) {
        this.productCode = productCode;
        return this;
    }

    public String getProductCategory() {
        return productCategory;
    }

    public TradeInfoRO setProductCategory(String productCategory) {
        this.productCategory = productCategory;
        return this;
    }

    public TradeClientTypeEnum getClientType() {
        return clientType;
    }

    public TradeInfoRO setClientType(TradeClientTypeEnum clientType) {
        this.clientType = clientType;
        return this;
    }

    public TradeStatusEnum getOrderStatus() {
        return orderStatus;
    }

    public TradeInfoRO setOrderStatus(TradeStatusEnum orderStatus) {
        this.orderStatus = orderStatus;
        return this;
    }

    public TradeSignStatusEnum getSignStatus() {
        return signStatus;
    }

    public TradeInfoRO setSignStatus(TradeSignStatusEnum signStatus) {
        this.signStatus = signStatus;
        return this;
    }

    public TradeAuditStatusEnum getAuditStatus() {
        return auditStatus;
    }

    public TradeInfoRO setAuditStatus(TradeAuditStatusEnum auditStatus) {
        this.auditStatus = auditStatus;
        return this;
    }

    public TradeAuditSubStatusEnum getAuditSubStatus() {
        return auditSubStatus;
    }

    public TradeInfoRO setAuditSubStatus(TradeAuditSubStatusEnum auditSubStatus) {
        this.auditSubStatus = auditSubStatus;
        return this;
    }

    public TradeTypeEnum getOrderType() {
        return orderType;
    }

    public TradeInfoRO setOrderType(TradeTypeEnum orderType) {
        this.orderType = orderType;
        return this;
    }

    public TradePayStatusEnum getPayStatus() {
        return payStatus;
    }

    public TradeInfoRO setPayStatus(TradePayStatusEnum payStatus) {
        this.payStatus = payStatus;
        return this;
    }

    public String getBorrowTotalCapital() {
        return borrowTotalCapital;
    }

    public TradeInfoRO setBorrowTotalCapital(String borrowTotalCapital) {
        this.borrowTotalCapital = borrowTotalCapital;
        return this;
    }

    public String getReceivedTotalCapital() {
        return receivedTotalCapital;
    }

    public TradeInfoRO setReceivedTotalCapital(String receivedTotalCapital) {
        this.receivedTotalCapital = receivedTotalCapital;
        return this;
    }

    public String getRepaymentTotalCapital() {
        return repaymentTotalCapital;
    }

    public TradeInfoRO setRepaymentTotalCapital(String repaymentTotalCapital) {
        this.repaymentTotalCapital = repaymentTotalCapital;
        return this;
    }

    public String getPaidTotalCapital() {
        return paidTotalCapital;
    }

    public TradeInfoRO setPaidTotalCapital(String paidTotalCapital) {
        this.paidTotalCapital = paidTotalCapital;
        return this;
    }

    public String getDiscountTotalCapital() {
        return discountTotalCapital;
    }

    public TradeInfoRO setDiscountTotalCapital(String discountTotalCapital) {
        this.discountTotalCapital = discountTotalCapital;
        return this;
    }

    public String getTotalServiceFee() {
        return totalServiceFee;
    }

    public TradeInfoRO setTotalServiceFee(String totalServiceFee) {
        this.totalServiceFee = totalServiceFee;
        return this;
    }

    public String getBorrowRatio() {
        return borrowRatio;
    }

    public TradeInfoRO setBorrowRatio(String borrowRatio) {
        this.borrowRatio = borrowRatio;
        return this;
    }

    public Integer getTotalPeriod() {
        return totalPeriod;
    }

    public TradeInfoRO setTotalPeriod(Integer totalPeriod) {
        this.totalPeriod = totalPeriod;
        return this;
    }

    public Integer getPaidPeriod() {
        return paidPeriod;
    }

    public TradeInfoRO setPaidPeriod(Integer paidPeriod) {
        this.paidPeriod = paidPeriod;
        return this;
    }

    public Integer getBorrowDuration() {
        return borrowDuration;
    }

    public TradeInfoRO setBorrowDuration(Integer borrowDuration) {
        this.borrowDuration = borrowDuration;
        return this;
    }

    public Integer getPeriodLength() {
        return periodLength;
    }

    public TradeInfoRO setPeriodLength(Integer periodLength) {
        this.periodLength = periodLength;
        return this;
    }

    public String getTotalOverdueServiceFee() {
        return totalOverdueServiceFee;
    }

    public TradeInfoRO setTotalOverdueServiceFee(String totalOverdueServiceFee) {
        this.totalOverdueServiceFee = totalOverdueServiceFee;
        return this;
    }

    public String getTotalOverdueFee() {
        return totalOverdueFee;
    }

    public TradeInfoRO setTotalOverdueFee(String totalOverdueFee) {
        this.totalOverdueFee = totalOverdueFee;
        return this;
    }

    public String getOverdueServiceFee() {
        return overdueServiceFee;
    }

    public TradeInfoRO setOverdueServiceFee(String overdueServiceFee) {
        this.overdueServiceFee = overdueServiceFee;
        return this;
    }

    public String getOverdueRatio() {
        return overdueRatio;
    }

    public TradeInfoRO setOverdueRatio(String overdueRatio) {
        this.overdueRatio = overdueRatio;
        return this;
    }

    public Date getAuditDate() {
        return auditDate;
    }

    public TradeInfoRO setAuditDate(Date auditDate) {
        this.auditDate = auditDate;
        return this;
    }

    public Date getReceivedDate() {
        return receivedDate;
    }

    public TradeInfoRO setReceivedDate(Date receivedDate) {
        this.receivedDate = receivedDate;
        return this;
    }

    public Date getPayOffDate() {
        return payOffDate;
    }

    public TradeInfoRO setPayOffDate(Date payOffDate) {
        this.payOffDate = payOffDate;
        return this;
    }

    public String getPayNo() {
        return payNo;
    }

    public TradeInfoRO setPayNo(String payNo) {
        this.payNo = payNo;
        return this;
    }

    public String getCapitalCode() {
        return capitalCode;
    }

    public TradeInfoRO setCapitalCode(String capitalCode) {
        this.capitalCode = capitalCode;
        return this;
    }

    public boolean isNewUser() {
        return isNewUser;
    }

    public TradeInfoRO setNewUser(boolean newUser) {
        isNewUser = newUser;
        return this;
    }

    public UsageOfLoanEnum getUsageOfLoan() {
        return usageOfLoan;
    }

    public TradeInfoRO setUsageOfLoan(UsageOfLoanEnum usageOfLoan) {
        this.usageOfLoan = usageOfLoan;
        return this;
    }

    public String getExtraData() {
        return extraData;
    }

    public TradeInfoRO setExtraData(String extraData) {
        this.extraData = extraData;
        return this;
    }

    public Date getCreateDt() {
        return createDt;
    }

    public TradeInfoRO setCreateDt(Date createDt) {
        this.createDt = createDt;
        return this;
    }

    public TradeCloseTypeEnum getTradeCloseTypeEnum() {
        return tradeCloseTypeEnum;
    }

    public TradeInfoRO setTradeCloseTypeEnum(TradeCloseTypeEnum tradeCloseTypeEnum) {
        this.tradeCloseTypeEnum = tradeCloseTypeEnum;
        return this;
    }

    public String getCardNo() {
        return cardNo;
    }

    public TradeInfoRO setCardNo(String cardNo) {
        this.cardNo = cardNo;
        return this;
    }
}
